In multiple-input, multiple-output (MIMO) wireless communication systems, throughput, spectral efficiency, and link reliability are increased by utilizing multiple transmit and receive antennas to provide a number of independent spatial channels. MIMO is commonly used to improve performance in orthogonal frequency division multiplexing (OFDM) wireless communication systems, such as Third Generation Partnership Project (3GPP) Long Term Evolution (LTE) systems, 3GPP WiMAX systems, IEEE 802.11n systems, and IEEE 802.11ac systems, for example. Generally, MIMO transmitter devices (e.g., 3GPP LTE eNodeB devices, WiMAX NodeB devices, IEEE 802.11n or 802.11ac access points, etc.) apply a precoder to signals that are to be transmitted in order to improve signal quality at the intended receiver, and to reduce interference to other, unintended receivers.
Typically, multiple different precoders are included in a “codebook,” and the MIMO system selects a particular precoder from the codebook so that the selected precoder may be applied to signals transmitted by a transmitting device. The precoder is generally selected based on measured channel state information (CSI), and is selected such that some system performance metric(s) is/are optimized. Generally, larger codebooks with more precoders are more likely to include a precoder that closely matches (i.e. counteracts) the measured propagation effects of the channel. By accurately counteracting the propagation effects of the channel, system throughput may be improved. As the codebook size increases, however, the search for an appropriate precoder can incur additional computational complexity and/or a longer search time.